
package com.jf.cloud.user.vo;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.jf.cloud.api.coupon.vo.CouponDataVO;
import com.jf.cloud.common.serializer.ImgJsonSerializer;
import com.jf.cloud.common.vo.BaseVO;
import io.swagger.v3.oas.annotations.media.Schema;

import java.util.List;

/**
 * 用户权益信息VO
 *
 * @author zz
 * @date 2021-04-25 16:01:58
 */
public class UserRightsVO extends BaseVO{
    private static final long serialVersionUID = 1L;

    @Schema(description = "权益id" )
    private Long rightsId;

    @Schema(description = "权益名称" )
    private String rightsName;

    @Schema(description = "权益图标" )
    @JsonSerialize(using = ImgJsonSerializer.class)
    private String icon;

    @Schema(description = "权益简介" )
    private String description;

    @Schema(description = "权益详情" )
    private String details;

    @Schema(description = "状态：-1: 删除 0:禁用 1：正常(仅用于系统核销)" )
    private Integer status;

    @Schema(description = "排序 从小到大" )
    private Integer seq;

    @Schema(description = "权益类型[0.自定义 1.积分回馈倍率 2.优惠券 3.积分赠送(数量) 4.会员折扣 5.包邮类型]" )
    private Integer rightsType;

    @Schema(description = "积分回馈倍率" )
    private Integer rateScore;

    @Schema(description = "赠送积分" )
    private Long presScore;

    @Schema(description = "会员折扣" )
    private Integer discount;

    @Schema(description = "折扣范围[0.全平台 1.自营店]" )
    private Integer discountRange;

    @Schema(description = "包邮类型[1.全平台包邮 2.自营店包邮]" )
    private Integer freeFeeType;

    @Schema(description = "优惠券id列表" )
    private List<Long> couponIds;

    @Schema(description = "优惠券列表" )
    private List<CouponDataVO> couponList;

    @Schema(description = "用户等级" )
    private Integer level;

    @Schema(description = "等级名称" )
    private String levelName;

    public Long getRightsId() {
        return rightsId;
    }

    public void setRightsId(Long rightsId) {
        this.rightsId = rightsId;
    }

    public String getRightsName() {
        return rightsName;
    }

    public void setRightsName(String rightsName) {
        this.rightsName = rightsName;
    }

    public String getIcon() {
        return icon;
    }

    public void setIcon(String icon) {
        this.icon = icon;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getDetails() {
        return details;
    }

    public void setDetails(String details) {
        this.details = details;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getSeq() {
        return seq;
    }

    public void setSeq(Integer seq) {
        this.seq = seq;
    }

    public Integer getRightsType() {
        return rightsType;
    }

    public void setRightsType(Integer rightsType) {
        this.rightsType = rightsType;
    }

    public Integer getRateScore() {
        return rateScore;
    }

    public void setRateScore(Integer rateScore) {
        this.rateScore = rateScore;
    }

    public Long getPresScore() {
        return presScore;
    }

    public void setPresScore(Long presScore) {
        this.presScore = presScore;
    }

    public Integer getDiscount() {
        return discount;
    }

    public void setDiscount(Integer discount) {
        this.discount = discount;
    }

    public Integer getDiscountRange() {
        return discountRange;
    }

    public void setDiscountRange(Integer discountRange) {
        this.discountRange = discountRange;
    }

    public Integer getFreeFeeType() {
        return freeFeeType;
    }

    public void setFreeFeeType(Integer freeFeeType) {
        this.freeFeeType = freeFeeType;
    }

    public List<Long> getCouponIds() {
        return couponIds;
    }

    public void setCouponIds(List<Long> couponIds) {
        this.couponIds = couponIds;
    }

    public List<CouponDataVO> getCouponList() {
        return couponList;
    }

    public void setCouponList(List<CouponDataVO> couponList) {
        this.couponList = couponList;
    }

    public Integer getLevel() {
        return level;
    }

    public void setLevel(Integer level) {
        this.level = level;
    }

    public String getLevelName() {
        return levelName;
    }

    public void setLevelName(String levelName) {
        this.levelName = levelName;
    }

    @Override
    public String toString() {
        return "UserRightsVO{" +
                "rightsId=" + rightsId +
                ", rightsName='" + rightsName +
                ", createTime=" + createTime +
                ", updateTime=" + updateTime +
                ", icon='" + icon +
                ", description='" + description +
                ", details=" + details +
                ", status=" + status +
                ", seq=" + seq +
                ", rightsType=" + rightsType +
                ", rateScore=" + rateScore +
                ", presScore=" + presScore +
                ", discount=" + discount +
                ", discountRange=" + discountRange +
                ", freeFeeType=" + freeFeeType +
                ", couponIds=" + couponIds +
                ", couponList=" + couponList +
                ", level=" + level +
                ", levelName" + levelName +
                '}';
    }
}
